package com.ruoyi.system.common;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.ruoyi.system.domain.CrmCustomerUserInfo;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class CQReadExcelListener extends AnalysisEventListener<CrmCustomerUserInfo> {

    List<CrmCustomerUserInfo> data = new ArrayList<>();

    public List<CrmCustomerUserInfo> getData() {
        return data;
    }

    public void setPinKunList(List<CrmCustomerUserInfo> data) {
        this.data = data;
    }

    @Override
    public void invoke(CrmCustomerUserInfo info, AnalysisContext analysisContext) {
        if (info != null && !"合计".equals(info.getDeptNumber())) {
            data.add(info);
        }
    }


    @Override
    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
        Set<Integer> indexes = headMap.keySet();
        if (indexes.size()!=11) {
            throw new RuntimeException("模板格式错误！列数不匹配");
        }
        if (!headMap.get(0).equals("单位编号")) {
            throw new RuntimeException("模板格式错误！第1列名称不对，应该为：单位编号");
        }
        if (!headMap.get(1).equals("个人编号")) {
            throw new RuntimeException("模板格式错误！第2列名称不对，应该为：个人编号");
        }
        if (!headMap.get(2).equals("姓名")) {
            throw new RuntimeException("模板格式错误！第3列名称不对，应该为：姓名");
        }
        if (!headMap.get(3).equals("证件号码")) {
            throw new RuntimeException("模板格式错误！第4列名称不对，应该为：证件号码");
        }
        if (!headMap.get(4).equals("对应费款所属期")) {
            throw new RuntimeException("模板格式错误！第5列名称不对，应该为：对应费款所属期");
        }
        if (!headMap.get(5).equals("费用所属期")) {
            throw new RuntimeException("模板格式错误！第6列名称不对，应该为：费用所属期");
        }
        if (!headMap.get(6).equals("缴费基数")) {
            throw new RuntimeException("模板格式错误！第7列名称不对，应该为：缴费基数");
        }
        if (!headMap.get(7).equals("个人缴费金额")) {
            throw new RuntimeException("模板格式错误！第8列名称不对，应该为：个人缴费金额");
        }
        if (!headMap.get(8).equals("单位缴费金额")) {
            throw new RuntimeException("模板格式错误！第9列名称不对，应该为：单位缴费金额");
        }
        if (!headMap.get(9).equals("缴费类别")) {
            throw new RuntimeException("模板格式错误！第10列名称不对，应该为：缴费类别");
        }
        if (!headMap.get(10).equals("缴费标志")) {
            throw new RuntimeException("模板格式错误！第11列名称不对，应该为：缴费标志");
        }
        super.invokeHeadMap(headMap, context);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }


}